f84202b65397b0c13ca31fe40b4a506e72edad06,src/main/java/com/demonwav/mcdev/platform/bukkit/BukkitModule.java,BukkitModule,checkUselessCancelCheck,#PsiMethodCallExpression#,195

Before Change


            return null;
        }

        final PsiElement resolve = expression.getMethodExpression().resolve();
        if (resolve == null) {
            return null;
        }

After Change



    @Nullable
    @Override
    public IsCancelled checkUselessCancelCheck(@NotNull PsiMethodCallExpression expression) {
        final PsiMethod method = McPsiUtil.findParent(expression, PsiMethod.class);
        if (method == null) {
            return null;
        }

        final PsiAnnotation annotation = method.getModifierList().findAnnotation(BukkitConstants.HANDLER_ANNOTATION);
        if (annotation == null) {
            return null;
        }

        // We are in an event method
        final PsiAnnotationMemberValue annotationMemberValue = annotation.findAttributeValue("ignoreCancelled");
        if (!(annotationMemberValue instanceof PsiLiteralExpression)) {
            return null;
        }

        final PsiLiteralExpression value = (PsiLiteralExpression) annotationMemberValue;
        if (!(value.getValue() instanceof Boolean)) {
            return null;
        }

        final boolean ignoreCancelled = (Boolean) value.getValue();

        // If we aren't ignoring cancelled then any check for event being cancelled is valid
        if (!ignoreCancelled) {
            return null;
        }

        final PsiReferenceExpression methodExpression = expression.getMethodExpression();
        final PsiExpression qualifierExpression = methodExpression.getQualifierExpression();
        final PsiElement resolve = methodExpression.resolve();

        if (qualifierExpression == null) {
            return null;
        }
        if (resolve == null) {